2、等差素数列
题目 等差素数列
思路分析
暴力枚举
枚举起点和公差 往后推九项 若每一项都是素数 就说明这个公差可以 结束程序即可
核心就是一个判断素数 可以用试除法
代码实现
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
set<int> primes;
bool st[N];
bool is_prime(int x)
{
if(x<2)
return false;
for(int i=2;i<=x/i;i++){
if(x%i==0)
return false;
}
return true;
}
int main()
{
//枚举 起点 和 公差
for(int i=2;i<10000;i++){
if(is_prime(i)){
for(int d=1;d<=1000;d++){
int cnt=1;
//往后推9项
for(int n=2;n<=10;n++){
if(isprime(i+(n-1)*d)){
cnt++;
}
else{
cnt=0;
break;
}
if(cnt==10){
cout<<d;
return 0;
}
}
}
}
}
return 0;
}
💬 评论